/*给所有的input添加失去焦点事件，
   1、判断input内的值是否为空
            若为空，显示不能为空的错误信息，return结束（不用继续判断）
    input值与正则表达式匹配，若正确提示正确信息，若不匹配提示错误信息*/
   
//给所有的input添加失去焦点事件
var inputs=document.getElementsByTagName('input');
for(var i=0;i<inputs.length;i++){
	inputs[i].onblur=inputBlur;
}

//定义input失去焦点事件：判断内容是否为空，是否正确
function inputBlur(){
	//获取当前input的name,value,提示消息
	var name=this.name;
	var value=this.value;
	var tips=this.placeholder;
	
	//获取显示正确或错误提示信息的div元素
	//根据当前input对象获取div：堂兄弟关系
	//根据当前Input对象获取它的父亲——父亲的下一个兄弟——这个兄弟的第一个孩子
	var div=this.parentNode.nextElementSibling.firstChild;
	
	//去除value两端的空格
	value=value.trim();
	
	//判断当前input的value值，若为空，显示不能为空的错误信息
	if(value==null||value==''){
		div.innerHTML="输入框不为空";
		//错误样式
		div.className='error';
	}else{
		//调用函数，根据当前input的name,获得该input的正则表达式
		var reg=getReg(name);
		//判断input值与正则表达式是否匹配
		if(value.match(reg)){
			div.innerHTML="输入正确";
			div.className='success';
		}else{
			div.innerHTML=tips;
			//错误样式
			div.className='error';
		}
	}
}

//定义函数：input值与正则表达式匹配
//参数：name
//返回值：正则表达式
function getReg(name){
	var reg='';
	switch(name){
		//长度4~12位：英文大小写字母
		case 'username':
		    reg=/^[a-zA-Z]{4,12}$/;
		    msg={''}
		    break;
		//长度6~20：大小写字母、数字或下划线
		case 'pwd':
		    reg=/^\w(6,20)$/;
		    break;
		    //正则表达式内容是 密码输入框的值
		//请再次输入密码进行确认
		case 'repwd':
		    //密码输入框的值
		    var pwd=document.getElementsByTagName('input')[i].value;
		    /*正则表达式：字面量&对象
		      var re=new RegExp("\\w");
		      var re=/\w/;*/
		    reg=new RegExp('^'+pwd+'$');
		    break;
		//13、14、15、17、18开头的11位手机号
		case 'tel':
		    reg=/^1[134578]\d{9}$/;
		    
		    break;
		//用户名@域名(域名后缀至少2个字符)
		case 'email':
		    reg=/^\w+@+\w+\.+\w{2,}$/;
		    break;
		default:
		    break;
	}
	return reg;
}
